package Day_0222.NetWork;

/**
 * @author zxc
 * @date 2023/02/22 18:04
 **/
public class HTTP_Keep_alive {
    public static void main(String[] args) {
        /**
         * 谈一谈对于 HTTP中keep-alive 的理解
         * 1.HTTP短连接
         * 在早期的HTTP/1.0中，每次http请求都要创建一个连接，而创建连接的过程需要消耗资源和时间，
         * ===》
         * 即，每次Http请求都需要建立TCP连接,而不能够去重用 已经建立的TCP连接;
         *
         * 2.HTTP长连接
         * （1）为了减少资源消耗，缩短响应时间，就需要重用TCP连接。
         * （2）在后来的HTTP/1.0中以及HTTP/1.1中，引入了重用TCP连接的机制，
         *  就是在http请求头中加入Connection: keep-alive，来告诉对方这个请求响应完成后不要关闭，下一次咱们还用这个请求继续交流。
         * （3）协议规定HTTP/1.0，如果想要保持长连接，需要在请求头中加上Connection: keep-alive。
         *
         * 3.keep-alive的优点：
         * （1）较少的CPU和内存的使用（建立TCP连接的次数减少 && 复用TCP连接）
         * （2）允许请求和应答的HTTP管线化
         * （3）降低拥塞控制 （TCP连接减少了）
         * （4）减少了后续请求的延迟（无需再进行握手）
         * （5）报告错误，无需关闭TCP连接
         *
         */
    }
}
